<?php defined('SYSPATH') or die('No direct script access.');

//-- Environment setup --------------------------------------------------------

/**
 * Set the default time zone.
 *
 * @see  http://kohanaframework.org/guide/using.configuration
 * @see  http://php.net/timezones
 */
date_default_timezone_set('America/Chicago');

/**
 * Set the default locale.
 *
 * @see  http://kohanaframework.org/guide/using.configuration
 * @see  http://php.net/setlocale
 */
setlocale(LC_ALL, 'en_US.utf-8');

/**
 * Enable the Kohana auto-loader.
 *
 * @see  http://kohanaframework.org/guide/using.autoloading
 * @see  http://php.net/spl_autoload_register
 */
spl_autoload_register(array('Kohana', 'auto_load'));

//Zend Autoloader
if ($path = Kohana::find_file('vendors', 'Zend/Loader')){
    ini_set('include_path', ini_get('include_path').PATH_SEPARATOR.dirname(dirname($path)));
	require_once 'Zend/Loader/Autoloader.php';
    Zend_Loader_Autoloader::getInstance();
}




/**
 * Enable the Kohana auto-loader for unserialization.
 *
 * @see  http://php.net/spl_autoload_call
 * @see  http://php.net/manual/var.configuration.php#unserialize-callback-func
 */
ini_set('unserialize_callback_func', 'spl_autoload_call');

//-- Configuration and initialization -----------------------------------------

/**
 * Initialize Kohana, setting the default options.
 *
 * The following options are available:
 *
 * - string   base_url    path, and optionally domain, of your application   NULL
 * - string   index_file  name of your index file, usually "index.php"       index.php
 * - string   charset     internal character set used for input and output   utf-8
 * - string   cache_dir   set the internal cache directory                   APPPATH/cache
 * - boolean  errors      enable or disable error handling                   TRUE
 * - boolean  profile     enable or disable internal profiling               TRUE
 * - boolean  caching     enable or disable internal caching                 FALSE
 */

Kohana::init(array(
	'base_url'   => 'http://diastole/diastole',
	'index_file' => FALSE
));



/**
 * Attach the file write to logging. Multiple writers are supported.
 */
Kohana::$log->attach(new Kohana_Log_File(APPPATH.'logs'));




/**
 * Attach a file reader to config. Multiple readers are supported.
 */
Kohana::$config->attach(new Kohana_Config_File);

/**
 * Enable modules. Modules are referenced by a relative or absolute path.
 */
Kohana::modules(array(
	// FirePHP Needs to be before database in order to get query data
	 'firephp'    => MODPATH.'firephp',    // FirePHP library
	 'auth'       => MODPATH.'auth',       // Basic authentication
	// 'cache'      => MODPATH.'cache',      // Caching with multiple backends
	// 'codebench'  => MODPATH.'codebench',  // Benchmarking tool
	 'database'   => MODPATH.'database',   // Database access
	 'jqgrid'	  => MODPATH.'jqgrid',		//JqGrid web control (added by B@sty)
	// 'image'      => MODPATH.'image',      // Image manipulation
	 'orm'        => MODPATH.'orm',        // Object Relationship Mapping
	// 'oauth'      => MODPATH.'oauth',      // OAuth authentication
	'pagination' => MODPATH.'pagination', // Paging of results
	'phpexcel' => MODPATH.'phpexcel',
    'pdfview' => MODPATH.'pdfview', 
	// 'unittest'   => MODPATH.'unittest',   // Unit testing
	 'userguide'  => MODPATH.'userguide',  // User guide and API documentation
	
	));

	
	
/**
 * Attach FirePHP to logging. be sure to enable firephp module
 */

// Exclude all FirePHP console logs from the file log...
Kohana::$log->attach(new FirePHP_Log_File(APPPATH.'logs'));
Kohana::$log->attach(new FirePHP_Log_Console());
Kohana::$log->add('FirePHP::INFO', 'FirePHP Initialized...')->write();
	
	
	
/**
 * Set the routes. Each route must have a minimum of a name, a URI and a set of
 * defaults for the URI.
 */
	
// The parenthesis caused this route to match any uri
//Route::set('route-4-params', '(<controller>/<action>/<p1>/<p2>/<p3>/<p4>)');	
	

Route::set('default', '(<controller>(/<action>(/<id>(/<id2>))))')->defaults(array('controller' => 'welcome','action'=>'index'));

if ( ! defined('SUPPRESS_REQUEST'))
{
	/**
	 * Execute the main request. A source of the URI can be passed, eg: $_SERVER['PATH_INFO'].
	 * If no source is specified, the URI will be automatically detected.
	 */
	echo Request::instance()
		->execute()
		->send_headers()
		->response;
}


/**
 * PROFILER
 */

/**
 * Run the at the end of the bootstap to profile the entire application
 * Alternatively, you can extend one of the FirePHP Controllers
 */

Fire::warn('Be sure to configure FirePHP authorization for productions sites. Don\'t want just anybody viewing this stuff...');
FirePHP_Profiler::instance()
	->group('KO3 FirePHP Profiler Results:')
	->superglobals() // New Superglobals method to show them all...
	->database()
	->benchmark()
	->groupEnd();



